package com.jhy.new2025.stack;

import java.util.LinkedList;
import java.util.Queue;

public class MyStack {

    Queue<Integer> queue;

    public MyStack() {
        queue = new LinkedList<>();
    }

    public void push(int x) {
        queue.add(x);
    }

    /**
     * 每次将数据弹出来 放在后面 最后一个数的时候不要动
     *
     * @return
     */
    public int pop() {
        int size = queue.size();
        while (size > 1) {
            queue.add(queue.poll());
            size--;
        }
        return queue.poll();
    }


    /**
     * 取出栈顶的元素 但是不
     *
     * @return
     */
    public int top() {
        int size = queue.size();
        while (size > 1) {
            queue.add(queue.poll());
            size--;
        }
        Integer peek = queue.peek();
        // top 只是取栈顶的元素 但不改变值
        queue.add(queue.poll());
        return peek;
    }

    public boolean empty() {
        return queue.isEmpty();
    }

    public static void main(String[] args) {
        MyStack myStack = new MyStack();
        myStack.push(1);
        myStack.push(2);
        myStack.top(); // 返回 2
        myStack.pop(); // 返回 2
        myStack.empty(); // 返回 False
    }
}
